#include <stdio.h>
#include "utils.h"
#include "admin.h"
#include "user.h"

// 菜单

// admin菜单
void admin_menu() {
    system("clear");
    printf("******管理员信息管理******\n");
    printf("      1、增加管理员\n");
    printf("      2、删除管理员\n");
    printf("      3、修改管理员\n");
    printf("      4、查询管理员\n");
    printf("      5、排序管理员\n");
    printf("      6、显示管理员\n");
    printf("      7、撤回上级\n");
    printf("**********************\n");
    switch(get_cmd('1', '7')) {
        case '1': admin_add(); break;
        case '2': admin_del(); break;
        case '3': admin_chg(); break;
        case '4': admin_get(); break;
        case '5': admin_srt(); break;
        case '6': admin_shw(); break;
        case '7': return;
    }
}

void admin_start() {
    char account[MAX_ADMIN_ACT] = {};
    char password[MAX_ADMIN_PWD] = {};

    printf("请输入账号：");
    get_str(account, MAX_ADMIN_ACT);
    printf("请输入密码：");
    get_pwd(password, true, MAX_ADMIN_PWD);

    State result = admin_login(account, password);
    if (result == LoginOk) {
        printf("登录成功\r\n");
        admin_menu();
    } else if (result == NameError) {
        printf("用户名错误\r\n");
    } else if (result == PassError) {
        printf("密码错误\r\n");
    } else {
        printf("啥也不是\r\n");
    }
}

void user_start() {
    char name[MAX_USERNAME_LENGTH] = {};
    char pswd[MAX_PASSWORD_LENGTH] = {};

    printf("请输入用户名：");
    get_str(name, MAX_USERNAME_LENGTH);
    printf("请输入密码：");
    get_pwd(pswd, true, MAX_PASSWORD_LENGTH);

    State result = user_login(name, pswd);
    if (result == LoginOk) {
        printf("登录成功\r\n");
    } else if (result == NameError) {
        printf("用户名错误\r\n");
    } else if (result == PassError) {
        printf("密码错误\r\n");
    } else {
        printf("登录未知错误\r\n");
    }
}

// user菜单
void user_menu() {
    system("clear");
    printf("******学生信息管理******\n");
    printf("    1、增加学生\n");
    printf("    2、删除学生\n");
    printf("    3、修改学生\n");
    printf("    4、查询学生\n");
    printf("    5、排序学生\n");
    printf("    6、显示学生\n");
    printf("    7、撤回上级\n");
    printf("**********************\n");
    switch(get_cmd('1', '7')) {
        case '1': user_add(); break;
        case '2': user_del(); break;
        case '3': user_chg(); break;
        case '4': user_get(); break;
        case '5': user_srt(); break;
        case '6': user_shw(); break;
        case '7': return;
    }
}

// 主菜单
void menu_list() {
    while(true) {
        system("clear");
        printf("***欢迎使用学生信息管理系统***\n");
        printf("1、管理员管理\n");
        printf("2、学生信息管理\n");
        printf("3、退出系统\n");
        printf("--------------------------\n");
        switch (get_cmd('1', '3')) {
            case '1': admin_start(); break;
            case '2': user_menu(); break;
            case '3': return;
        }
    }
}
